Operatory logiczne

Przez prawie 5 lat programowania w VB, a to w wersji 1.0, 4.0 aż do 6.0, spotykałem się z operatorami logicznymi, lecz nigdy mnie to za bardzo nie interesowało, bo po co? Pewnego dnia naszła mnie chęć na poznanie czym są operatory AND, NOT, OR. Co zaskakujące, odpowiedź na moje pytania związane z tymi operatorami znalazłem nie w podręczniku programowania, ale w książce traktującej o elektronice cyfrowej. Tak, to rzeczywiście książka podstawowa, której poznanie uznałem za priorytet. Książka ta to "Elektronika łatwiejsza niż przypuszczasz - układy scalone" autorstwa Dieter'a Nührmann'a wydana przez Wydawnictwo Komunikacji i Łączności w 1985 roku.

Co to właściwie jest
Sir Georg Boole, angielski matematyk, w połowie XVIII w. stworzył tzw. algebrę Boole'a, która jest zwana algebrą logiki. Teraz już wiadomo, skąd wziął się typ zmiennej Boolean, która przechowuje tylko jedną wartość binarną - 1 lub 0. Cała sprawa okazuje się jednak bardziej skomplikowana, lecz przy głębszym poznaniu jej podstaw okaże się prosta.

AND
Jest to logiczna operacja I; oznacza iloczyn logiczny; w algebrze logicznej jest zapisywany jako znak iloczynu (mnożenia) 'x'.
Wyrażenie Y=AxBxC czytamy Y jest równe A i B i C.
Ale co to niby ma znaczyć??? Otóż najprościej jest to sobie wyobrazić na układzie rury podłączonej do sieci wodnej. Na rurze tej zamontowano trzy zawory o nazwach kolejno A, B, C. Wszystkie zawory zamknięte - woda nie popłynie, jeden lub dwa - też nie. Oznacza, to, że by aby woda popłynęła, wszystkie zawory muszą być otwarte, tak samo jest z naszym równaniem, jeśli któryś ze składników - A, B, C będą miały wartość 0 to wynik będzie równy 0. Przykład prezentuje tabelka

A

B

C

Y

0

0

0

0

1

0

0

0

1

1

0

0

1

0

1

0

1

1

1

1

0

1

1

0

0

0

1

0

Jak widać, tylko w jednym i to ściśle określonym przypadku Y jest równe 1, czyli prawdzie. Można to porównać do instrukcji warunkowej: jeżeli A i B i C są prawdziwe to Y jest prawdziwe.

NO
Jest to logiczna operacja negacji; jeśli coś ma wartość 1 to po negacji będzie miało wartość 0, a jeśli 0 to potem 1.
Operacja ta matematycznie oznaczana jest prostą kreską nad jedną z części równania:
       _
Y=A

A Y
1 0
0 1

OR
Jest to logiczne LUB, czyli to jest tzw. suma logiczna.
Wyrażenie Y=A+B czytamy Y jest równe A lub B.
Jeśli tylko jeden bit będzie zawierał 1 to wynik będzie równy 1.

A B Y
0 0 0
1 0 1
0 1 1
1 1 1

NAND i NOR
Są to połączenia operatorów NO i AND, oraz NO i OR. Obydwa operatory są zaprzeczeniem wyniku AND lub OR. To znaczy, jeśli wynik danego operatora AND da 1, to NAND z takimi samymi składowymi da 0, a gdy OR da 1, to NOR przekaże 0, lub na odwrót.


Operatory logiczne są jak wiadomo znane już od dawna. Od wielu lat stosuje się je w elektronice pod postacią bramek logicznych odpowiadających danemu operatorowi. Dzięki temu można stworzyć wiele ciekawych urządzeń, np. cyfrowy generator fal kwadratowych symetrycznych o danej częstotliwości; metoda użycia bramek jest prostsza, niż na przykład użycie "lampy".

Pamiętajmy, że operatory logiczne nie działają na liczbach dziesiętnych, tylko na binarnych, więc wynik NOT 1 nie da -1, ale -2.


Marcin Porębski ( Doogie )

marcin.porebski@interia.pl